"""
元组没有直接推导式的写法，因为 元组 类型的数据，本身是不允许被修改
"""

name_tup = ("Tom", "alice", "Jerry", "Wendy", "Smith", "Bob")
# 错误写法
new_name_tup = (name for name in name_tup)
# print(new_name_tup) # <generator object <genexpr> at 0x00000128E1B440B0>

"""
实现推导式写法一：使用 tuple()函数 + 生成器表达式
tuple()：强制转换 元组类型
(name for x in name_tup if len(name) > 3)：本质是一个 按需生成符合条件元素 的生成器，遍历 元组name_tup，判断 name 的长度大于 3 的值
"""
# 使用 tuple() 函数，把 生成器对象 转换成 元组
new_name_tup01 = tuple((name for name in name_tup if len(name) > 3))
print(f"我是new_name_tup01：{new_name_tup01}")

"""
实现推导式写法二：for循环 + 列表 + tuple()函数
"""
temp_list = []
for name in name_tup:
    if len(name) > 3:
        temp_list.append(name)
new_name_tup02 = tuple(temp_list)
print(f"我是new_name_tup02：{new_name_tup02}")
